#include "Thread.hpp"
#include "ThreadPool.hpp"
#include <unistd.h>
#include <memory>
#include "Task.hpp"

using namespace ThreadNs;

int main()
{
    std::unique_ptr<ThreadPool<Task>> tp(new ThreadPool<Task>());
    tp->run();

    int x,y;
    char op;

    while(true)
    {
        std::cout << "请输入一个数据1#";
        std::cin >> x;
        std::cout << "请输入一个数据2#";
        std::cin >> y;
        std::cout << "请输入你要进行的运算符#";
        std::cin >> op;
        Task t(x, y, op,mymath);

        std::cout << "你刚刚录入了一个任务：" << t.toString() << "确认要提交吗？[y/n]#";
        char i ;
        std::cin >> i;
        if(i =='y')
        {
            tp->push(t);
        }
        
    }

    // tp->join();

    return 0;
}




















// //测试代码
// void * run(void* args)
// {
//     std::string name = static_cast<const char*>(args);
//     while(true)
//     {
//         std::cout << name << std::endl;
//         sleep(1);
//     }
//     return nullptr;
// }

// int main()
// {
//     Thread t1(run ,(void*)"thread 1 run"),t2(run, (void*)"thread 2 run");

//     t1.start();
//     t2.start();

//     t1.join();
//     t2.join();


//     return 0;
// }